package com.airili.wiki.controller;

import com.airili.wiki.domain.Test;
import com.airili.wiki.service.impl.TestService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * @program: wiki
 * @description: 项目启动测试类
 * @author: Airili
 * @create: 2021-09-23 20:54
 **/
@RestController
public class TestController {

    @Value("${test.hello:TEST}")
    private String customItem;

    @Resource
    private TestService testService;

    /**
     * @description:
     *       http 请求方法共有 8 种，其中我们 web 应用最多的是四种，对应 Restful 风格，
     *       如：我们传统来说，访问的 url 一般为： 127.0.0.1:8080/user?id=1 来代表查询 id为 1 的角色信息
     *          而在 Restful 风格中，url一般为： 127.0.0.1:8080/user/1
     *       - 四种请求方法：
     *          POST:   增
     *          DELETE: 删
     *          PUT:    改
     *          GET:    查
     *       - 对应的四种请求注解：
     *          @PostMapping()
     *          @DeleteMapping()
     *          @PutMapping()
     *          @GetMapping()
     *       - 也可以统一写成以下：
     *          @RequestMapping(value = "/hello/1", method = RequestMethod.GET)
     */
    @RequestMapping("/hello")
    public String hello() {
        return "Hello World," + customItem;
    }

    @PostMapping("/hello/post")
    public String helloPost(String name) {
        return "hello post, " + name;
    }

    @GetMapping("/test/list")
    public List<Test> list() {
        return testService.list();
    }

}
